package com.atguigu.xuexiplus.service;

import com.atguigu.xuexiplus.dto.HomeworkDTO;
import com.atguigu.xuexiplus.dto.HomeworkVO;
import com.atguigu.xuexiplus.entity.Homework;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 作业服务接口
 */
public interface HomeworkService extends IService<Homework> {

    /**
     * 发布作业
     */
    boolean publishHomework(HomeworkDTO homeworkDTO);

    /**
     * 根据学科ID查询作业列表
     */
    List<HomeworkVO> getHomeworksBySubjectId(Long subjectId);

    /**
     * 根据学科ID和学生ID查询作业列表（包含完成状态）
     */
    List<HomeworkVO> getHomeworksBySubjectIdAndStudent(Long subjectId, Long studentId);

    /**
     * 查询今日作业列表
     */
    List<HomeworkVO> getTodayHomeworks();

    /**
     * 查询今日作业完成度
     */
    Double getTodayCompletionRate(Long studentId);

    /**
     * 查询今日作业（按学生，含完成状态）
     */
    List<HomeworkVO> getTodayHomeworksByStudent(Long studentId);

    /**
     * 切换某条作业的完成状态（0 未完成 -> 1 已完成 -> 0 未完成）
     */
    boolean toggleCompletion(Long homeworkId, Long studentId);

    /**
     * 更新作业
     */
    boolean updateHomework(Long id, HomeworkDTO homeworkDTO);

    /**
     * 删除作业
     */
    boolean deleteHomework(Long id);
}
